package com.lin.operatorlogrecord.entity.annotation;

import com.lin.operatorlogrecord.entity.enums.OperatorLogFiledTypeEnum;

import java.lang.annotation.*;

/**
 * @author lin cheng hao
 * 字段标识注解
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FieldIdentifyAnnotation {

    /**
     * 唯一标识字段，只能有一个字段是true
     */
    boolean id() default false;

    /**
     * 对象名，只能有一个字段是true
     */
    boolean isObjectName() default false;

    /**
     * 字段名，必填
     */
    String filedName() default "";

    /**
     * 字段类型
     */
    OperatorLogFiledTypeEnum type() default OperatorLogFiledTypeEnum.NORMAL;

    /**
     * 变更字段显示优先级
     */
    int priority() default 0;

    /**
     * 数据字典
     */
    Class<?> dictionary() default FieldIdentifyAnnotation.class;
}
